#include "widget.h"
#include <QLabel>
#include "ui_widget.h"


/*
 * TEST: 容器类控件
 * QGroupBox 分组框
 * 	- 可以将其他的各种控件放到 GroupBox 中，但是这些空间的父元素就不是 this 了，而是这个 GroupBox
 *
 * QTabWidget 标签页
 * 1. QTabWidget 的所有标签都是 QWidget 类型对象
 * 2. 使用 QLabel 往 QWidget 里面添加文字描述的时候，记得绑定父元素
 * 3. 通过 tabWidget->count() 来获取 tab 个数
 * 4. ui->tabWidget->addTab(QWidget, TabName) 添加新标签的时候，指定标签的名字
 * 5. ui->tabWidget->widget(index) 可以获取对应下标的标签
 * 6. ui->tabWidget->tabText(index) 可以获取对应下标标签的名字
 * 7. 同时页面被选中或者关闭的时候也有一系列的信号
*/

Widget::Widget(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::Widget)
{
    ui->setupUi(this);

    // 往标签页里面增加内容
    QLabel* lab = new QLabel(ui->tab);		// 挂到 tabs 里面, 的 tab 标签页
    lab->setText("标签页 1");
    lab->resize(200, 100);

    QLabel* lab2 = new QLabel(ui->tab_2);
    lab2->setText("标签页 2");
    lab2->resize(200, 100);
}

Widget::~Widget()
{
    delete ui;
}


// 新增标签页
void Widget::on_insert_clicked()
{
    // QTabWidget 的每个标签都是 QWidget 类型的
    int size = ui->tabs->count();

    // 将该标签添加到 Tabs 里面
    QWidget* tab = new QWidget();
    ui->tabs->addTab(tab, "tab" + QString::number(size));

    QLabel* lab = new QLabel(tab);
    lab->setText("The Tab" + QString::number(size));
    lab->resize(200, 300);

    // 并且自动聚焦
    ui->tabs->setCurrentIndex(size);
}



void Widget::on_erase_clicked()
{
    int index = ui->tabs->currentIndex();
    ui->tabs->removeTab(index);
}
